package joshie.progression;
import joshie.progression.api.ProgressionAPI;
import joshie.progression.commands.CommandManager;
import joshie.progression.gui.fields.FieldRegistry;
import joshie.progression.gui.filters.FilterSelectorHelper;
import joshie.progression.handlers.APIHandler;
import joshie.progression.handlers.ProgressionEvents;
import joshie.progression.handlers.RuleHandler;
import joshie.progression.json.Options;
import joshie.progression.network.PacketHandler;
import joshie.progression.player.PlayerHandler;
import joshie.progression.player.PlayerTracker;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.discovery.ASMDataTable;
import net.minecraftforge.fml.common.network.IGuiHandler;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.oredict.ShapedOreRecipe;
import static joshie.progression.ItemProgression.ItemMeta.book;
import static joshie.progression.ItemProgression.getStackFromMeta;
import static net.minecraft.init.Items.FLINT;
public class PCommonProxy implements IGuiHandler {
public void preInit(ASMDataTable asm) {
//Create the API
ProgressionAPI.registry = new APIHandler();
ProgressionAPI.player = new PlayerHandler();
ProgressionAPI.filters = new FilterSelectorHelper();
ProgressionAPI.fields = new FieldRegistry();
//Register Handlers
MinecraftForge.EVENT_BUS.register(CommandManager.INSTANCE);
MinecraftForge.EVENT_BUS.register(new PlayerTracker());
MinecraftForge.EVENT_BUS.register(new ProgressionEvents());
//Register the items
Progression.item = (ItemProgression) new ItemProgression().setUnlocalizedName("item").setRegistryName("item");
GameRegistry.register(Progression.item);
GameRegistry.addRecipe(new ShapedOreRecipe(getStackFromMeta(book), "FS", "PP", 'P', Items.PAPER, 'S', Items.STRING, 'F', FLINT));
if (Options.tileClaimerRecipe) {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Progression.item, 1, ItemProgression.ItemMeta.claim.ordinal()), new Object[] { "F", "P", 'F', Items.FLINT, 'P', "plankWood" }));
}
RuleHandler.registerRules(asm);
CommandManager.registerCommands(asm);
PacketHandler.registerPackets(asm);
//Register DamageSources
ProgressionAPI.registry.registerDamageSource(DamageSource.anvil);
ProgressionAPI.registry.registerDamageSource(DamageSource.cactus);
ProgressionAPI.registry.registerDamageSource(DamageSource.drown);
ProgressionAPI.registry.registerDamageSource(DamageSource.fall);
ProgressionAPI.registry.registerDamageSource(DamageSource.fallingBlock);
ProgressionAPI.registry.registerDamageSource(DamageSource.generic);
ProgressionAPI.registry.registerDamageSource(DamageSource.inFire);
ProgressionAPI.registry.registerDamageSource(DamageSource.inWall);
ProgressionAPI.registry.registerDamageSource(DamageSource.lava);
ProgressionAPI.registry.registerDamageSource(DamageSource.lightningBolt);
ProgressionAPI.registry.registerDamageSource(DamageSource.magic);
ProgressionAPI.registry.registerDamageSource(DamageSource.onFire);
ProgressionAPI.registry.registerDamageSource(DamageSource.outOfWorld);
ProgressionAPI.registry.registerDamageSource(DamageSource.starve);
ProgressionAPI.registry.registerDamageSource(DamageSource.wither);
ProgressionAPI.registry.registerDamageSource(DamageSource.flyIntoWall);
ProgressionAPI.registry.registerDamageSource(DamageSource.dragonBreath);
NetworkRegistry.INSTANCE.registerGuiHandler(Progression.instance, Progression.proxy);
}
public void initClient() {}
public void registerRendering() {}
//Gui Handling
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
return null;
}
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
return null;
}
}